{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "RDKit WARNING: [12:00:22] Enabling RDKit 2019.09.1 jupyter extensions\n"
     ]
    }
   ],
   "source": [
    "from torch_geometric.data import DataLoader\n",
    "import torch.distributions as D\n",
    "import matplotlib.pyplot as plt\n",
    "from rdkit import Chem, DataStructs\n",
    "from rdkit.Chem import AllChem, Draw, Descriptors, rdMolTransforms\n",
    "from rdkit import rdBase\n",
    "import glob\n",
    "import os\n",
    "\n",
    "from deepdock.utils.distributions import *\n",
    "from deepdock.utils.data import *\n",
    "from deepdock.models import *\n",
    "\n",
    "from deepdock.DockingFunction import optimze_conformation\n",
    "from scipy.optimize import basinhopping, brute, differential_evolution\n",
    "import copy\n",
    "\n",
    "# set the random seeds for reproducibility\n",
    "np.random.seed(123)\n",
    "torch.cuda.manual_seed_all(123)\n",
    "torch.manual_seed(123)\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<All keys matched successfully>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#device = 'cuda' if torch.cuda.is_available() else 'cpu'\n",
    "device = 'cpu'\n",
    "\n",
    "ligand_model = LigandNet(28, residual_layers=10, dropout_rate=0.10)\n",
    "target_model = TargetNet(4, residual_layers=10, dropout_rate=0.10)\n",
    "model = DeepDock(ligand_model, target_model, hidden_dim=64, n_gaussians=10, dropout_rate=0.10, dist_threhold=7.).to(device)\n",
    "\n",
    "checkpoint = torch.load('../Trained_models/DeepDock_pdbbindv2019_13K_minTestLoss.chk')\n",
    "model.load_state_dict(checkpoint['model_state_dict']) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Complexes in Test Set: 1367\n",
      "CPU times: user 4.9 s, sys: 2.61 s, total: 7.51 s\n",
      "Wall time: 7.51 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "db_complex = PDBbind_complex_dataset(data_path='../data/dataset_deepdock_pdbbind_v2019_16K.tar', \n",
    "                                     min_target_nodes=50, max_ligand_nodes=None)\n",
    "db_complex = [i for i in db_complex if i[3] in checkpoint['pdbIDs_test']]\n",
    "print('Complexes in Test Set:', len(db_complex))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def dock_compound(data, dist_threshold=3., popsize=150):\n",
    "    np.random.seed(123)\n",
    "    torch.cuda.manual_seed_all(123)\n",
    "    torch.manual_seed(123)\n",
    "    \n",
    "    model.eval()\n",
    "    ligand, target, activity, pdbid = data\n",
    "    ligand, target = ligand.to(device), target.to(device)\n",
    "    pi, sigma, mu, dist, atom_types, bond_types, batch = model(ligand, target)\n",
    "    \n",
    "    pdb_id = pdbid[0]\n",
    "    real_mol = Chem.MolFromMol2File('../../DeepDock/data/pdbbind_v2019_other_refined/' + pdb_id + '/' + pdb_id +'_ligand.mol2',\n",
    "                                    sanitize=False, cleanupSubstructures=False, removeHs=False)\n",
    "    opt = optimze_conformation(mol=real_mol, target_coords=target.pos.cpu(), n_particles=1, \n",
    "                               pi=pi.cpu(), mu=mu.cpu(), sigma=sigma.cpu(), dist_threshold=dist_threshold)\n",
    "    \n",
    "    #Define bounds\n",
    "    max_bound = np.concatenate([[np.pi]*3, target.pos.cpu().max(0)[0].numpy(), [np.pi]*len(opt.rotable_bonds)], axis=0)\n",
    "    min_bound = np.concatenate([[-np.pi]*3, target.pos.cpu().min(0)[0].numpy(), [-np.pi]*len(opt.rotable_bonds)], axis=0)\n",
    "    bounds = (min_bound, max_bound)\n",
    "    \n",
    "    # Optimize conformations\n",
    "    result = differential_evolution(opt.score_conformation, list(zip(bounds[0],bounds[1])), maxiter=500, \n",
    "                                    popsize=int(np.ceil(popsize/(len(opt.rotable_bonds)+6))),\n",
    "                                    mutation=(0.5, 1), recombination=0.8, disp=False, seed=123)\n",
    "    \n",
    "    # Get optimized molecule and RMSD\n",
    "    opt_mol = opt.apply_changes(opt.mol, result['x'])\n",
    "    ligCoords = torch.stack([torch.tensor(m.GetConformer().GetPositions()[opt.noHidx]) for m in [opt_mol]])\n",
    "    dist = opt.compute_euclidean_distances_matrix(ligCoords, opt.targetCoords).flatten().unsqueeze(1)\n",
    "    result['num_MixOfGauss'] = torch.where(dist <= dist_threshold)[0].size(0)\n",
    "    result['rmsd'] = Chem.rdMolAlign.AlignMol(opt_mol, real_mol, atomMap=list(zip(opt.noHidx,opt.noHidx)))\n",
    "    result['pdb_id'] = pdb_id\n",
    "    \n",
    "    # Get score of real conformation\n",
    "    ligCoords = torch.stack([torch.tensor(m.GetConformer().GetPositions()[opt.noHidx]) for m in [real_mol]])\n",
    "    dist = opt.compute_euclidean_distances_matrix(ligCoords, opt.targetCoords).flatten().unsqueeze(1)\n",
    "    score_real_mol = opt.calculate_probablity(opt.pi, opt.sigma, opt.mu, dist)\n",
    "    score_real_mol[torch.where(dist > dist_threshold)[0]] = 0.\n",
    "    result['score_real_mol'] = pdb_id = score_real_mol.reshape(opt.n_particles, -1).sum(1).item()\n",
    "    del ligCoords, dist, score_real_mol\n",
    "    \n",
    "    result['pkx'] = data[2][0].item()\n",
    "    result['num_atoms'] = real_mol.GetNumHeavyAtoms()\n",
    "    result['num_rotbonds'] = len(opt.rotable_bonds)\n",
    "    result['rotbonds'] = opt.rotable_bonds\n",
    "    #result['num_MixOfGauss'] = mu.size(0)\n",
    "    \n",
    "    return result"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "RDKit WARNING: [18:41:01] 1w70_ligand: Warning - no explicit hydrogens in mol2 file but needed for formal charge estimation.\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "loader = DataLoader(db_complex, batch_size=1, shuffle=False)\n",
    "\n",
    "results = []\n",
    "i = 0\n",
    "for data in loader:\n",
    "    try:\n",
    "        results.append(dock_compound(data))\n",
    "        d = {}\n",
    "        for k in results[0].keys():\n",
    "            if k != 'jac':\n",
    "                d[k] = tuple(d[k] for d in results)\n",
    "        torch.save(d, 'DockingResults_TestSet.chk')\n",
    "        results_df = pd.DataFrame.from_dict(d)\n",
    "        results_df.to_csv('DockingResults_TestSet.csv', index=False) \n",
    "        i += 1\n",
    "    except:\n",
    "        print(i, data[3])\n",
    "        #break\n",
    "        i += 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>x</th>\n",
       "      <th>fun</th>\n",
       "      <th>nfev</th>\n",
       "      <th>nit</th>\n",
       "      <th>message</th>\n",
       "      <th>success</th>\n",
       "      <th>num_MixOfGauss</th>\n",
       "      <th>rmsd</th>\n",
       "      <th>pdb_id</th>\n",
       "      <th>score_real_mol</th>\n",
       "      <th>pkx</th>\n",
       "      <th>num_atoms</th>\n",
       "      <th>num_rotbonds</th>\n",
       "      <th>rotbonds</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>[0.4068741664658634, -3.111903377819833, 2.669...</td>\n",
       "      <td>[-61.60544253382419]</td>\n",
       "      <td>81378</td>\n",
       "      <td>500</td>\n",
       "      <td>Maximum number of iterations has been exceeded.</td>\n",
       "      <td>False</td>\n",
       "      <td>428</td>\n",
       "      <td>2.892180</td>\n",
       "      <td>3zsq</td>\n",
       "      <td>85.058905</td>\n",
       "      <td>4.96</td>\n",
       "      <td>39</td>\n",
       "      <td>14</td>\n",
       "      <td>[(2, 10, 20, 31), (14, 11, 21, 33), (5, 12, 30...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>[-2.0860038481249803, 0.36174218280227977, -0....</td>\n",
       "      <td>-204.159</td>\n",
       "      <td>8093</td>\n",
       "      <td>51</td>\n",
       "      <td>Optimization terminated successfully.</td>\n",
       "      <td>True</td>\n",
       "      <td>273</td>\n",
       "      <td>2.222657</td>\n",
       "      <td>6g34</td>\n",
       "      <td>192.097119</td>\n",
       "      <td>8.24</td>\n",
       "      <td>20</td>\n",
       "      <td>2</td>\n",
       "      <td>[(3, 2, 1, 0), (6, 5, 4, 3)]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>[1.1728373648793995, 1.711938601173987, 2.2464...</td>\n",
       "      <td>[-104.11306138437084]</td>\n",
       "      <td>21802</td>\n",
       "      <td>134</td>\n",
       "      <td>Optimization terminated successfully.</td>\n",
       "      <td>True</td>\n",
       "      <td>469</td>\n",
       "      <td>1.667209</td>\n",
       "      <td>5w99</td>\n",
       "      <td>97.692953</td>\n",
       "      <td>4.68</td>\n",
       "      <td>34</td>\n",
       "      <td>7</td>\n",
       "      <td>[(18, 1, 0, 15), (27, 26, 2, 18), (5, 4, 6, 24...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>[0.6677677050421503, -1.6613927144064407, -0.6...</td>\n",
       "      <td>[-4.350164062386345]</td>\n",
       "      <td>33354</td>\n",
       "      <td>212</td>\n",
       "      <td>Optimization terminated successfully.</td>\n",
       "      <td>True</td>\n",
       "      <td>117</td>\n",
       "      <td>0.569976</td>\n",
       "      <td>2q7q</td>\n",
       "      <td>1.262541</td>\n",
       "      <td>5.30</td>\n",
       "      <td>9</td>\n",
       "      <td>1</td>\n",
       "      <td>[(3, 2, 1, 0)]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>[-1.1667280590125937, 0.0006917577322102169, -...</td>\n",
       "      <td>[-100.44115467231256]</td>\n",
       "      <td>33998</td>\n",
       "      <td>212</td>\n",
       "      <td>Optimization terminated successfully.</td>\n",
       "      <td>True</td>\n",
       "      <td>315</td>\n",
       "      <td>2.894431</td>\n",
       "      <td>2pbw</td>\n",
       "      <td>95.071165</td>\n",
       "      <td>8.25</td>\n",
       "      <td>22</td>\n",
       "      <td>7</td>\n",
       "      <td>[(0, 1, 3, 4), (1, 3, 5, 6), (5, 6, 7, 8), (11...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                   x                    fun  \\\n",
       "0  [0.4068741664658634, -3.111903377819833, 2.669...   [-61.60544253382419]   \n",
       "1  [-2.0860038481249803, 0.36174218280227977, -0....               -204.159   \n",
       "2  [1.1728373648793995, 1.711938601173987, 2.2464...  [-104.11306138437084]   \n",
       "3  [0.6677677050421503, -1.6613927144064407, -0.6...   [-4.350164062386345]   \n",
       "4  [-1.1667280590125937, 0.0006917577322102169, -...  [-100.44115467231256]   \n",
       "\n",
       "    nfev  nit                                          message  success  \\\n",
       "0  81378  500  Maximum number of iterations has been exceeded.    False   \n",
       "1   8093   51            Optimization terminated successfully.     True   \n",
       "2  21802  134            Optimization terminated successfully.     True   \n",
       "3  33354  212            Optimization terminated successfully.     True   \n",
       "4  33998  212            Optimization terminated successfully.     True   \n",
       "\n",
       "   num_MixOfGauss      rmsd pdb_id  score_real_mol   pkx  num_atoms  \\\n",
       "0             428  2.892180   3zsq       85.058905  4.96         39   \n",
       "1             273  2.222657   6g34      192.097119  8.24         20   \n",
       "2             469  1.667209   5w99       97.692953  4.68         34   \n",
       "3             117  0.569976   2q7q        1.262541  5.30          9   \n",
       "4             315  2.894431   2pbw       95.071165  8.25         22   \n",
       "\n",
       "   num_rotbonds                                           rotbonds  \n",
       "0            14  [(2, 10, 20, 31), (14, 11, 21, 33), (5, 12, 30...  \n",
       "1             2                       [(3, 2, 1, 0), (6, 5, 4, 3)]  \n",
       "2             7  [(18, 1, 0, 15), (27, 26, 2, 18), (5, 4, 6, 24...  \n",
       "3             1                                     [(3, 2, 1, 0)]  \n",
       "4             7  [(0, 1, 3, 4), (1, 3, 5, 6), (5, 6, 7, 8), (11...  "
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "results_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([153., 187., 158., 108.,  80.,  65.,  62.,  40.,  35.,  29.]),\n",
       " array([ 28. ,  75.1, 122.2, 169.3, 216.4, 263.5, 310.6, 357.7, 404.8,\n",
       "        451.9, 499. ]),\n",
       " <a list of 10 Patch objects>)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAD8CAYAAAB5Pm/hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAD9VJREFUeJzt3X+sX3V9x/Hna0VxUzfAXknDj11w1QWNVnfDMP4I4jRVjOhiGI1RdI3VRDLNTEzFRN0SE9xEptmGK6EBE63okEmEDbtqJEvmj1uptQiMlpXYprZXUHTTMFve++Oesq/dbe/t98f90s99PpJv7jnvc77f8z4n+b56+vme7/mmqpAktes3xt2AJGm0DHpJapxBL0mNM+glqXEGvSQ1zqCXpMYZ9JLUOINekhpn0EtS404adwMAy5cvr8nJyXG3IUknlK1bt/64qibmW+8JEfSTk5NMT0+Puw1JOqEkeXAh6zl0I0mNM+glqXEGvSQ1zqCXpMYZ9JLUOINekhpn0EtS4wx6SWqcQS9JjXtCfDP2RDW5/raxbHf3VRePZbuSTkye0UtS4wx6SWqcQS9JjTPoJalxBr0kNc6gl6TGGfSS1DiDXpIaN2/QJ9mY5ECSHT21m5Js6x67k2zr6pNJftmz7NOjbF6SNL+FfDP2BuBvgc8cLlTVnxyeTnI18EjP+ruqatWwGpQkDWbeoK+qO5NMzrUsSYBLgYuG25YkaVgGHaN/GbC/qu7vqZ2T5K4k30jysgFfX5I0oEFvarYG2NQzvw84u6oeSvIHwD8leW5V/ezIJyZZB6wDOPvsswdsQ5J0NH2f0Sc5Cfhj4KbDtap6tKoe6qa3AruAZ8/1/KraUFVTVTU1MTHRbxuSpHkMMnTzR8C9VbXncCHJRJJl3fS5wErggcFalCQNYiGXV24C/h14TpI9SdZ2iy7j14dtAF4ObO8ut/xH4F1V9fAwG5YkHZ+FXHWz5ij1t81Ruxm4efC2JEnD4jdjJalxBr0kNc6gl6TGGfSS1DiDXpIaZ9BLUuMMeklqnEEvSY0z6CWpcQa9JDXOoJekxhn0ktQ4g16SGmfQS1LjBv0pQY3B5Prbxrbt3VddPLZtS+qPZ/SS1DiDXpIaZ9BLUuMMeklq3LwfxibZCLwOOFBVz+tqHwHeAcx0q11ZVbd3yz4ArAUOAX9WVXeMoO9fM84PJyXpiW4hZ/Q3AKvnqF9TVau6x+GQPw+4DHhu95y/T7JsWM1Kko7fvEFfVXcCDy/w9S4BPl9Vj1bVfwI7gfMH6E+SNKBBxuivSLI9ycYkp3a1M4Af9qyzp6tJksak36C/FngWsArYB1x9vC+QZF2S6STTMzMz8z9BktSXvoK+qvZX1aGqegy4jv8bntkLnNWz6pldba7X2FBVU1U1NTEx0U8bkqQF6Cvok6zomX0jsKObvhW4LMnJSc4BVgLfHqxFSdIgFnJ55SbgQmB5kj3Ah4ELk6wCCtgNvBOgqu5O8gXgB8BB4N1VdWg0rUuSFmLeoK+qNXOUrz/G+h8FPjpIU5Kk4fGbsZLUOINekhpn0EtS4wx6SWqcQS9JjTPoJalxBr0kNc6gl6TGGfSS1DiDXpIaZ9BLUuMMeklqnEEvSY0z6CWpcQa9JDXOoJekxhn0ktQ4g16SGmfQS1Lj5g36JBuTHEiyo6f210nuTbI9yS1JTunqk0l+mWRb9/j0KJuXJM1vIWf0NwCrj6htBp5XVc8H/gP4QM+yXVW1qnu8azhtSpL6NW/QV9WdwMNH1L5aVQe72W8CZ46gN0nSEAxjjP5PgX/umT8nyV1JvpHkZUd7UpJ1SaaTTM/MzAyhDUnSXAYK+iQfBA4Cn+1K+4Czq+qFwJ8Dn0vy23M9t6o2VNVUVU1NTEwM0oYk6Rj6DvokbwNeB7y5qgqgqh6tqoe66a3ALuDZQ+hTktSnvoI+yWrg/cDrq+oXPfWJJMu66XOBlcADw2hUktSfk+ZbIckm4EJgeZI9wIeZvcrmZGBzEoBvdlfYvBz4yyS/Ah4D3lVVD8/5wpKkRTFv0FfVmjnK1x9l3ZuBmwdtSpI0PH4zVpIaZ9BLUuMMeklqnEEvSY0z6CWpcQa9JDXOoJekxhn0ktQ4g16SGmfQS1LjDHpJapxBL0mNM+glqXHz3r1S6jW5/raxbHf3VRePZbtSCzyjl6TGGfSS1DiDXpIaZ9BLUuMWFPRJNiY5kGRHT+20JJuT3N/9PbWrJ8mnkuxMsj3Ji0bVvCRpfgs9o78BWH1EbT2wpapWAlu6eYDXACu7xzrg2sHblCT1a0FBX1V3Ag8fUb4EuLGbvhF4Q0/9MzXrm8ApSVYMo1lJ0vEbZIz+9Kra103/CDi9mz4D+GHPenu6miRpDIbyYWxVFVDH85wk65JMJ5memZkZRhuSpDkMEvT7Dw/JdH8PdPW9wFk9653Z1X5NVW2oqqmqmpqYmBigDUnSsQwS9LcCl3fTlwNf7qm/tbv65gLgkZ4hHknSIlvQvW6SbAIuBJYn2QN8GLgK+EKStcCDwKXd6rcDrwV2Ar8A3j7kniVJx2FBQV9Va46y6JVzrFvAuwdpSpI0PH4zVpIaZ9BLUuMMeklqnEEvSY0z6CWpcQa9JDXOoJekxhn0ktQ4g16SGmfQS1LjDHpJapxBL0mNM+glqXEGvSQ1zqCXpMYZ9JLUOINekhq3oF+YksZtcv1tY9v27qsuHtu2pWHwjF6SGtf3GX2S5wA39ZTOBT4EnAK8A5jp6ldW1e19dyhJGkjfQV9V9wGrAJIsA/YCtwBvB66pqo8PpUNJ0kCGNXTzSmBXVT04pNeTJA3JsIL+MmBTz/wVSbYn2Zjk1CFtQ5LUh4GDPsmTgdcDX+xK1wLPYnZYZx9w9VGety7JdJLpmZmZuVaRJA3BMM7oXwN8t6r2A1TV/qo6VFWPAdcB58/1pKraUFVTVTU1MTExhDYkSXMZRtCvoWfYJsmKnmVvBHYMYRuSpD4N9IWpJE8FXgW8s6f8V0lWAQXsPmKZJGmRDRT0VfXfwDOOqL1loI4kSUPlN2MlqXEGvSQ1zqCXpMYZ9JLUOINekhpn0EtS4/zhEWke4/rRE3/wRMPiGb0kNc6gl6TGOXQjPUH5O7kaFs/oJalxBr0kNc6gl6TGGfSS1DiDXpIaZ9BLUuMMeklqnEEvSY0z6CWpcQN/MzbJbuDnwCHgYFVNJTkNuAmYZPYHwi+tqp8Mui1J0vEb1hn9K6pqVVVNdfPrgS1VtRLY0s1LksZgVEM3lwA3dtM3Am8Y0XYkSfMYRtAX8NUkW5Os62qnV9W+bvpHwOlHPinJuiTTSaZnZmaG0IYkaS7DuHvlS6tqb5JnApuT3Nu7sKoqSR35pKraAGwAmJqa+n/LJUnDMfAZfVXt7f4eAG4Bzgf2J1kB0P09MOh2JEn9GSjokzw1ydMPTwOvBnYAtwKXd6tdDnx5kO1Ikvo36NDN6cAtSQ6/1ueq6l+SfAf4QpK1wIPApQNuR5LUp4GCvqoeAF4wR/0h4JWDvLYkaTj8ZqwkNc6gl6TGGfSS1DiDXpIaZ9BLUuMMeklq3DBugSCpMZPrbxvLdndfdfFYtts6z+glqXEGvSQ1zqCXpMYZ9JLUOD+MlfSE4YfAo+EZvSQ1zqCXpMYZ9JLUOINekhpn0EtS4wx6SWpc35dXJjkL+AyzvxtbwIaq+mSSjwDvAGa6Va+sqtsHbVSSRmVcl3XC4lzaOch19AeB91XVd5M8HdiaZHO37Jqq+vjg7UmSBtV30FfVPmBfN/3zJPcAZwyrMUnScAxljD7JJPBC4Ftd6Yok25NsTHLqMLYhSerPwEGf5GnAzcB7q+pnwLXAs4BVzJ7xX32U561LMp1kemZmZq5VJElDMFDQJ3kSsyH/2ar6EkBV7a+qQ1X1GHAdcP5cz62qDVU1VVVTExMTg7QhSTqGvoM+SYDrgXuq6hM99RU9q70R2NF/e5KkQQ1y1c1LgLcA30+yratdCaxJsorZSy53A+8cqENJ0kAGuerm34DMschr5iXpCcRvxkpS4wx6SWqcQS9JjTPoJalxBr0kNc6gl6TGGfSS1DiDXpIaZ9BLUuMMeklqnEEvSY0z6CWpcQa9JDXOoJekxhn0ktQ4g16SGmfQS1LjDHpJapxBL0mNG1nQJ1md5L4kO5OsH9V2JEnHNpKgT7IM+DvgNcB5wJok541iW5KkYxvVGf35wM6qeqCq/gf4PHDJiLYlSTqGUQX9GcAPe+b3dDVJ0iI7aVwbTrIOWNfN/leS+8bVyxgtB3487ibGbKkfg6W+/7DEj0E+BvR/DH53ISuNKuj3Amf1zJ/Z1R5XVRuADSPa/gkhyXRVTY27j3Fa6sdgqe8/eAxg9MdgVEM33wFWJjknyZOBy4BbR7QtSdIxjOSMvqoOJrkCuANYBmysqrtHsS1J0rGNbIy+qm4Hbh/V6zdiSQ9ddZb6MVjq+w8eAxjxMUhVjfL1JUlj5i0QJKlxBv0IJdmY5ECSHT2105JsTnJ/9/fUrp4kn+puGbE9yYvG1/lwJDkrydeT/CDJ3Une09WX0jF4SpJvJ/ledwz+oqufk+Rb3b7e1F20QJKTu/md3fLJcfY/LEmWJbkryVe6+aW2/7uTfD/JtiTTXW3R3gcG/WjdAKw+orYe2FJVK4Et3TzM3i5iZfdYB1y7SD2O0kHgfVV1HnAB8O7uVhhL6Rg8ClxUVS8AVgGrk1wAfAy4pqp+D/gJsLZbfy3wk65+TbdeC94D3NMzv9T2H+AVVbWq5zLKxXsfVJWPET6ASWBHz/x9wIpuegVwXzf9D8CaudZr5QF8GXjVUj0GwG8B3wX+kNkvx5zU1V8M3NFN3wG8uJs+qVsv4+59wP0+swuyi4CvAFlK+9/ty25g+RG1RXsfeEa/+E6vqn3d9I+A07vppm8b0f0X/IXAt1hix6AbttgGHAA2A7uAn1bVwW6V3v18/Bh0yx8BnrG4HQ/d3wDvBx7r5p/B0tp/gAK+mmRrd1cAWMT3wdhugSCoqkrS/GVPSZ4G3Ay8t6p+luTxZUvhGFTVIWBVklOAW4DfH3NLiybJ64ADVbU1yYXj7meMXlpVe5M8E9ic5N7ehaN+H3hGv/j2J1kB0P090NXnvW3EiSjJk5gN+c9W1Ze68pI6BodV1U+BrzM7VHFKksMnWr37+fgx6Jb/DvDQIrc6TC8BXp9kN7N3sb0I+CRLZ/8BqKq93d8DzP5jfz6L+D4w6BffrcDl3fTlzI5bH66/tfvE/QLgkZ7/1p2QMnvqfj1wT1V9omfRUjoGE92ZPEl+k9nPKO5hNvDf1K125DE4fGzeBHytuoHaE1FVfaCqzqyqSWZvhfK1qnozS2T/AZI8NcnTD08DrwZ2sJjvg3F/SNHyA9gE7AN+xew421pmxxu3APcD/wqc1q0bZn+sZRfwfWBq3P0PYf9fyuzY5HZgW/d47RI7Bs8H7uqOwQ7gQ139XODbwE7gi8DJXf0p3fzObvm5496HIR6LC4GvLLX97/b1e93jbuCDXX3R3gd+M1aSGufQjSQ1zqCXpMYZ9JLUOINekhpn0EtS4wx6SWqcQS9JjTPoJalx/wu3qcF1+IR5bAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(results_df['nit'][results_df.success == True])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([287., 491., 255., 142.,  76.,  61.,  39.,   7.,   6.,   3.]),\n",
       " array([1.99216067e-06, 1.12116077e+00, 2.24231954e+00, 3.36347832e+00,\n",
       "        4.48463709e+00, 5.60579587e+00, 6.72695465e+00, 7.84811342e+00,\n",
       "        8.96927220e+00, 1.00904310e+01, 1.12115897e+01]),\n",
       " <a list of 10 Patch objects>)"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#plt.hist(results_df['rmsd'][results_df.success == True])\n",
    "plt.hist(results_df['rmsd'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2.495132448184889"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "results_df.rmsd.mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.6241036200685184"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "results_df[results_df.success == True].rmsd.mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(917, 14)"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "results_df[results_df.success == True].shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PathCollection at 0x7f1d0537af98>"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "norm_scores = [-r[0] if isinstance(r, list)  else -r for r in results_df.fun[results_df.success == True]]\n",
    "plt.scatter(norm_scores, results_df[results_df.success == True].pkx)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PathCollection at 0x7f1d5a0e6320>"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "norm_scores = [-r[0] if isinstance(r, list)  else -r for r in results_df.fun[results_df.success == True]]\n",
    "plt.scatter(norm_scores, results_df[results_df.success == True].pkx)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PathCollection at 0x7f1d05086e48>"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "norm_scores = [-r[0] if isinstance(r, list)  else -r for r in results_df.fun[results_df.success == True]]\n",
    "plt.scatter(results_df[results_df.success == True].num_rotbonds, norm_scores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PathCollection at 0x7f1d5b5d22e8>"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "norm_scores = [-r[0] if isinstance(r, list)  else -r for r in results_df.fun[results_df.success == True]]\n",
    "plt.scatter(results_df[results_df.success == True].num_atoms, norm_scores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PathCollection at 0x7f1d5b5c95f8>"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "norm_scores = [-r[0] if isinstance(r, list)  else -r for r in results_df.fun[results_df.success == True]]\n",
    "plt.scatter(results_df[results_df.success == True].num_atoms, results_df[results_df.success == True].rmsd)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PathCollection at 0x7f1d5a833a58>"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(results_df[results_df.success == True].num_rotbonds, results_df[results_df.success == True].rmsd)\n",
    "#plt.scatter(results_df.num_rotbonds, results_df.rmsd)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f1d054d3978>]"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "norm_scores = [-r[0] if isinstance(r, list)  else -r for r in results_df.fun[results_df.success == True]]\n",
    "plt.scatter(norm_scores, results_df[results_df.success == True].score_real_mol)\n",
    "plt.plot([0,300], [0,300], '-r')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>x</th>\n",
       "      <th>fun</th>\n",
       "      <th>nfev</th>\n",
       "      <th>nit</th>\n",
       "      <th>message</th>\n",
       "      <th>success</th>\n",
       "      <th>jac</th>\n",
       "      <th>rmsd</th>\n",
       "      <th>pdb_id</th>\n",
       "      <th>score_real_mol</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>[1.3748057943281191, -0.4826028014294825, 2.13...</td>\n",
       "      <td>[-364.806770723242]</td>\n",
       "      <td>7362</td>\n",
       "      <td>56</td>\n",
       "      <td>Optimization terminated successfully.</td>\n",
       "      <td>True</td>\n",
       "      <td>[-0.0021884716261411086, -0.001716671249596402...</td>\n",
       "      <td>1.062297</td>\n",
       "      <td>3wf6</td>\n",
       "      <td>627.400509</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>[3.141592653589793, -1.4331719131845528, -2.52...</td>\n",
       "      <td>[-493.99769349980284]</td>\n",
       "      <td>117589</td>\n",
       "      <td>500</td>\n",
       "      <td>Maximum number of iterations has been exceeded.</td>\n",
       "      <td>False</td>\n",
       "      <td>[-0.6910909178259317, 0.0010231815394945443, -...</td>\n",
       "      <td>3.542217</td>\n",
       "      <td>4b9z</td>\n",
       "      <td>782.277607</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>[-2.109265052871724, 0.3173394855975662, -2.09...</td>\n",
       "      <td>[-1162.5185396000136]</td>\n",
       "      <td>240454</td>\n",
       "      <td>500</td>\n",
       "      <td>Maximum number of iterations has been exceeded.</td>\n",
       "      <td>False</td>\n",
       "      <td>[31.426748137164395, 24.671612663951237, -32.6...</td>\n",
       "      <td>3.126936</td>\n",
       "      <td>1m0b</td>\n",
       "      <td>1604.583213</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>[-0.15389043897876434, -3.020332654441904, 1.7...</td>\n",
       "      <td>[-74.78615502978923]</td>\n",
       "      <td>3666</td>\n",
       "      <td>33</td>\n",
       "      <td>Optimization terminated successfully.</td>\n",
       "      <td>True</td>\n",
       "      <td>[-0.00011368683772161603, 1.1368683772161603e-...</td>\n",
       "      <td>0.053483</td>\n",
       "      <td>2rk7</td>\n",
       "      <td>60.809820</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>[-0.8998916306504124, -0.8213899634576136, -0....</td>\n",
       "      <td>[-422.6319121543464]</td>\n",
       "      <td>34527</td>\n",
       "      <td>135</td>\n",
       "      <td>Optimization terminated successfully.</td>\n",
       "      <td>True</td>\n",
       "      <td>[-0.0023362645151792094, 0.01262492332898546, ...</td>\n",
       "      <td>4.171069</td>\n",
       "      <td>4wkp</td>\n",
       "      <td>273.228510</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                   x                    fun  \\\n",
       "0  [1.3748057943281191, -0.4826028014294825, 2.13...    [-364.806770723242]   \n",
       "1  [3.141592653589793, -1.4331719131845528, -2.52...  [-493.99769349980284]   \n",
       "2  [-2.109265052871724, 0.3173394855975662, -2.09...  [-1162.5185396000136]   \n",
       "3  [-0.15389043897876434, -3.020332654441904, 1.7...   [-74.78615502978923]   \n",
       "4  [-0.8998916306504124, -0.8213899634576136, -0....   [-422.6319121543464]   \n",
       "\n",
       "     nfev  nit                                          message  success  \\\n",
       "0    7362   56            Optimization terminated successfully.     True   \n",
       "1  117589  500  Maximum number of iterations has been exceeded.    False   \n",
       "2  240454  500  Maximum number of iterations has been exceeded.    False   \n",
       "3    3666   33            Optimization terminated successfully.     True   \n",
       "4   34527  135            Optimization terminated successfully.     True   \n",
       "\n",
       "                                                 jac      rmsd pdb_id  \\\n",
       "0  [-0.0021884716261411086, -0.001716671249596402...  1.062297   3wf6   \n",
       "1  [-0.6910909178259317, 0.0010231815394945443, -...  3.542217   4b9z   \n",
       "2  [31.426748137164395, 24.671612663951237, -32.6...  3.126936   1m0b   \n",
       "3  [-0.00011368683772161603, 1.1368683772161603e-...  0.053483   2rk7   \n",
       "4  [-0.0023362645151792094, 0.01262492332898546, ...  4.171069   4wkp   \n",
       "\n",
       "   score_real_mol  \n",
       "0      627.400509  \n",
       "1      782.277607  \n",
       "2     1604.583213  \n",
       "3       60.809820  \n",
       "4      273.228510  "
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "d = torch.load('DockingResults_TestSet.chk')\n",
    "reults_df = pd.DataFrame.from_dict(d)\n",
    "reults_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#%%time\n",
    "#loader = DataLoader(db_complex_train[5:1000], batch_size=1, shuffle=False)\n",
    "#data =  next(iter(loader))\n",
    "\n",
    "pdb_id = data[3][0]\n",
    "real_mol = Chem.MolFromMol2File('data/pdbbind_v2019_other_refined/' + pdb_id + '/' + pdb_id +'_ligand.mol2')\n",
    "mol = Chem.MolFromSmiles(Chem.MolToSmiles(Chem.MolFromMol2File('data/pdbbind_v2019_other_refined/' + pdb_id + '/' + pdb_id +'_ligand.mol2')))\n",
    "Chem.rdchem.Mol.Compute2DCoords(mol)\n",
    "Chem.rdMolTransforms.CanonicalizeConformer(mol.GetConformer())\n",
    "mol = Chem.AddHs(mol)\n",
    "AllChem.EmbedMolecule(mol, randomSeed=123)\n",
    "AllChem.MMFFOptimizeMolecule(mol)\n",
    "mol = Chem.RemoveHs(mol)\n",
    "\n",
    "\n",
    "opt = optimze_conformation(mol=mol, target_coords=torch.tensor([0]), n_particles=1, pi=torch.tensor([0]), mu=torch.tensor([0]), sigma=torch.tensor([0]))\n",
    "\n",
    "\n",
    "opt_mol = copy.copy(mol)\n",
    "values = t['x']\n",
    "        \n",
    "# aplply rotations\n",
    "[opt.SetDihedral(opt_mol.GetConformer(), opt.rotable_bonds[r], values[6+r]) for r in range(len(opt.rotable_bonds))]\n",
    "        \n",
    "# aplply transformation matrix\n",
    "rdMolTransforms.TransformConformer(opt_mol.GetConformer(), opt.GetTransformationMatrix(values[:6]))\n",
    "opt_mol\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import py3Dmol\n",
    "p = py3Dmol.view(width=400,height=400)\n",
    "p.addModel(Chem.MolToMolBlock(opt_mol),'sdf')\n",
    "p.addModel(Chem.MolToMolBlock(real_mol),'sdf')\n",
    "p.setStyle({'stick':{}})\n",
    "p.zoomTo()\n",
    "\n",
    "p.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [conda env:python36]",
   "language": "python",
   "name": "conda-env-python36-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
